#pragma once

#include <Windows.h>
#include <WinInet.h>

#ifndef GW2API_C_STRUCTS
#define APP_ID "GW2API"
#define API_SERVER "api.guildwars2.com"
#define DYNAMIC_EVENTS_API "/v1/events.json?world_id="
#define WORLD_MAPPING_API "/v1/world_names.json?"
#define MAP_MAPPING_API "/v1/map_names.json?"
#define EVENT_MAPPING_API "/v1/event_names.json?"
#define WVW_MATCHES "/v1/wvw/matches.json"
#define WVW_MATCH_DETAILS "/v1/wvw/match_details.json?match_id="
#define WVW_OBJECTIVE_NAMES "/v1/wvw/objective_names.json?"
#define ITEMS_API "/v1/items.json"
#define ITEM_DETAILS "/v1/item_details.json?item_id="
#define RECIPES_API "/v1/recipes.json"
#define RECIPE_DETAILS "/v1/recipe_details.json?recipe_id="
#define GUILD_API "/v1/guild_details.json?"
#define API_BUILD "/v1/build.json"
#define COLORS_API "/v1/colors.json"
#define GW2API_LANG_DE 0
#define GW2API_LANG_FR 1
#define GW2API_LANG_EN 2
#endif


//sends a worldmapping request to the server, returns the recieved answer as a string
char* _worldMappingRequest(int lang);

//sends a mapmapping request to the server, returns the recieved answer as a string
char* _mapMappingRequest(int lang);

//sends an eventmapping request to the server, returns the recieved answer as a string
char* _eventMappingRequest(int lang);

//sends an eventstate request to the server, returns the recieved answer as a string @param: strPtr world_id, map_id, event_id
char* _eventStateRequest(const char *world_id, const char *map_id, const char *event_id);

//requests the current matchmapping from the server
char* _matchMappingRequest();

//requests a match's details from the server @param: strPtr match_id
char* _matchDetailsRequest(const char *match_id);

//requests the objective names from the server
char* _WVWObjectiveNamesRequest(int lang);

//requests a list of all discovered Items
char* _itemListRequest();

//requests an item's details
char* _itemDetailsRequest(const char *id, int lang);

//requests a list of all discovered Recipes
char* _recipeListRequest();

//requests an recipe's details
char* _recipeDetailsRequest(const char *id, int lang);

//guild request
char* _guildAPIRequest(const char *id, const char *name);

//requests the current build
char* _apiBuildRequest();

//requests a list of colors
char* _colorRequest(int lang);